const fs = require('fs');
const path = require('path');

// 可用的API模块
const API_MODULES = ['user', 'media'];

// 显示帮助信息
function showHelp() {
  console.log('🔧 API模块清理工具');
  console.log('');
  console.log('用法:');
  console.log('  node scripts/clean-api.js [模块名]');
  console.log('');
  console.log('参数:');
  console.log('  模块名: 要清理的模块 (可选)');
  console.log('    - user: 清理用户相关API');
  console.log('    - media: 清理媒体相关API');
  console.log('    - all: 清理所有API模块');
  console.log('');
  console.log('示例:');
  console.log('  node scripts/clean-api.js user     # 只清理user模块');
  console.log('  node scripts/clean-api.js all      # 清理所有模块');
  console.log('  node scripts/clean-api.js          # 显示帮助');
}

// 清理指定模块
function cleanModule(moduleName) {
  const modulePath = path.join('./src/api', moduleName);
  
  if (!fs.existsSync(modulePath)) {
    console.log(`❌ 模块 ${moduleName} 不存在`);
    return false;
  }
  
  try {
    // 删除模块目录下的所有文件
    const files = fs.readdirSync(modulePath);
    files.forEach(file => {
      const filePath = path.join(modulePath, file);
      if (fs.statSync(filePath).isFile()) {
        fs.unlinkSync(filePath);
        console.log(`🗑️  删除文件: ${file}`);
      }
    });
    
    console.log(`✅ ${moduleName} 模块清理完成`);
    return true;
  } catch (error) {
    console.error(`❌ 清理 ${moduleName} 模块失败:`, error.message);
    return false;
  }
}

// 清理所有模块
function cleanAllModules() {
  console.log('🧹 开始清理所有API模块...');
  
  let successCount = 0;
  API_MODULES.forEach(module => {
    if (cleanModule(module)) {
      successCount++;
    }
  });
  
  console.log(`\n🎉 清理完成！成功清理 ${successCount}/${API_MODULES.length} 个模块`);
  console.log('\n💡 下一步操作:');
  console.log('  1. 运行 npm run openapi 重新生成API代码');
  console.log('  2. 运行 npm run fix-api 修复文件结构');
}

// 主函数
function main() {
  const args = process.argv.slice(2);
  
  if (args.length === 0) {
    showHelp();
    return;
  }
  
  const moduleName = args[0].toLowerCase();
  
  if (moduleName === 'help' || moduleName === '-h' || moduleName === '--help') {
    showHelp();
    return;
  }
  
  if (moduleName === 'all') {
    cleanAllModules();
    return;
  }
  
  if (API_MODULES.includes(moduleName)) {
    console.log(`🧹 开始清理 ${moduleName} 模块...`);
    if (cleanModule(moduleName)) {
      console.log(`\n💡 下一步操作:`);
      console.log(`  1. 运行 npm run openapi 重新生成API代码`);
      console.log(`  2. 运行 npm run fix-api 修复文件结构`);
    }
    return;
  }
  
  console.log(`❌ 未知的模块: ${moduleName}`);
  console.log('');
  showHelp();
}

// 执行主函数
main();








